টেক্সট প্রিপ্রসেসিং (Text Preprocessing) মেশিন লার্নিং এবং প্রাকৃতিক ভাষা প্রক্রিয়াকরণের (Natural Language Processing, NLP) একটি গুরুত্বপূর্ণ অংশ। এটি মূলত ডেটা পরিষ্কার এবং প্রস্তুত করার জন্য বিভিন্ন কৌশল ব্যবহার করে, যাতে মডেল আরও সঠিকভাবে কাজ করতে পারে। টোকেনাইজেশন (Tokenization) এবং প্যাডিং (Padding) দুইটি প্রধান প্রিপ্রসেসিং কৌশল যা টেক্সট ডেটা প্রস্তুত করতে ব্যবহৃত হয়।
টোকেনাইজেশন হল টেক্সট ডেটাকে ছোট ছোট ইউনিট বা অংশে ভাগ করার প্রক্রিয়া। এই ইউনিটগুলোকে টোকেন বলা হয়। টোকেনগুলি সাধারণত শব্দ, বাক্যাংশ বা অক্ষর হতে পারে এবং এগুলি NLP মডেলগুলির ইনপুট হিসেবে ব্যবহৃত হয়।
টোকেনাইজেশন টেক্সট ডেটাকে ছোট ছোট একক (টোকেন) এ বিভক্ত করে, যেমন:
ধরা যাক, আপনার কাছে একটি টেক্সট "I love machine learning."।
['I', 'love', 'machine', 'learning']
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'm', 'a', 'c', 'h', 'i', 'n', 'e', ' ', 'l', 'e', 'a', 'r', 'n', 'i', 'n', 'g', '.']
টোকেনাইজেশন এর সুবিধা:
প্যাডিং একটি টেক্সট প্রিপ্রসেসিং কৌশল যেখানে ইনপুট সিকোয়েন্সের দৈর্ঘ্য সমান করা হয়। টেক্সট ডেটার প্রতিটি সিকোয়েন্সের দৈর্ঘ্য সাধারণত ভিন্ন হয়, এবং অধিকাংশ মডেল সমান দৈর্ঘ্যের ইনপুট নেয়। তাই ছোট সিকোয়েন্সগুলিকে নির্দিষ্ট দৈর্ঘ্যের করতে প্যাডিং ব্যবহার করা হয়।
প্যাডিং সিকোয়েন্সগুলির মধ্যে কোন একটি নির্দিষ্ট দৈর্ঘ্য নিশ্চিত করে, এবং এটি মূলত ছোট সিকোয়েন্সের শেষে 0
বা অন্য কোনো প্যাডিং ভ্যালু যোগ করে।
ধরা যাক, আপনার সিকোয়েন্সগুলি নিম্নরূপ:
['I love NLP']
(দৈর্ঘ্য: 3)['I love machine learning']
(দৈর্ঘ্য: 4)এখন যদি আমরা একটি সর্বোচ্চ দৈর্ঘ্য নির্ধারণ করি, যেমন 5, তবে প্যাডিং এর মাধ্যমে:
['I love NLP', 0]
['I love machine learning']
(এটি প্রথমেই প্যাড করা যাবে না, কারণ এটি 5-এর সমান)এখানে, আপনি একটি নির্দিষ্ট দৈর্ঘ্য বজায় রাখতে 0
(বা অন্য কোনো ভ্যালু) যোগ করছেন।
প্যাডিং এর সুবিধা:
এখন, আমরা একটি সাধারণ টেক্সট প্রিপ্রসেসিং উদাহরণ দেখবো যেখানে টোকেনাইজেশন এবং প্যাডিং উভয়ই করা হবে:
import tensorflow as tf
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
# উদাহরণ টেক্সট ডেটা
texts = ["I love machine learning", "Deep learning is amazing", "I love NLP"]
# টোকেনাইজেশন
tokenizer = Tokenizer()
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)
# প্যাডিং
padded_sequences = pad_sequences(sequences, padding='post', maxlen=6)
# ফলাফল
print("Tokenized Sequences:", sequences)
print("Padded Sequences:", padded_sequences)
Tokenized Sequences: [[1, 2, 3, 4], [5, 3, 6, 7], [1, 2, 8]]
Padded Sequences: [[1, 2, 3, 4, 0, 0], [5, 3, 6, 7, 0, 0], [1, 2, 8, 0, 0, 0]]
এখানে:
0
দিয়ে পূর্ণ করা হয়েছে।Read more